package com.lsnu.ehr.controller;

import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.lsnu.ehr.domain.Result;
import com.lsnu.ehr.entity.DepaTurn;
import com.lsnu.ehr.entity.Emp;
import com.lsnu.ehr.jpa.DepaTurnRepository;
import com.lsnu.ehr.jpa.EmpRepository;

/**
 * 部门调动控制器
 * @author 小七
 *
 */
// 允许跨域请求
@CrossOrigin
// 以json形式返回
@ResponseBody
// 控制器
@Controller

public class DepaTurnController {
	
	// 依赖注入，类似于配置spring的bean
	@Autowired
	DepaTurnRepository repositories;
	@Autowired
	EmpRepository empRep;
	
	/**
	 * 岗位调换添加和员工更新
	 * @param depaTurn
	 * @return
	 */
	@RequestMapping("addDepaTurn")
	public Object addDepaTurn(DepaTurn depaTurn) {
		
		// 使用接口直接存储部门，spring会自动代理接口方法時
		Boolean flag = false;
		// 查找要调换的员工
		Optional<Emp> emps = empRep.findById(depaTurn.getTurnEmp().getId());
		if( emps != null  )
		{
			// 先添加一个岗位调换表
			DepaTurn dbDepaTurn = repositories.save(depaTurn);
			flag = (null != dbDepaTurn.getId());
			// 如果成功创建，就进行员工岗位修改
			if(flag) {
				// 修改对应员工的岗位
				Emp emp = emps.get();
				emp.setEmpDiv(depaTurn.getTurnDepa());
				
				empRep.save(emp);
			}
		}
		return new Result(1,flag);
	}
	
	/**
	 * 岗位调换查询
	 * @return
	 */
	@RequestMapping("findDepaTurn")
	public Object findDepaTurn() {
		
		// 使用接口直接存储部门，spring会自动代理接口方法時
		List<DepaTurn> depaTurns = repositories.findAll();
		
		return new Result(1, depaTurns);
	}

}